/* 
###### 变量的结构赋值
        1. 数组的结构赋值
        2. 对象的结构赋值
        3. 对象的结构赋值指定默认值
        4. 字符串的结构赋值

*/
// 数组的结构赋值 
// let [a, b, c] = [1, 2, 3];
// let [a, b, c] = [, 2];
// let [a = 100, b, c = 19] = [, 2, ];
// console.log(a, b, c);

// 对象的结构赋值
// let { obj, foo } = { obj: 100, foo: 200 };
// 对象属性别名(如果有了别名，那么原来的名字就无效了)
// let { obj: obj1, foo } = { obj: 100, foo: 200 };
// console.log(obj1, foo);

// 对象的解构赋值指定默认值
// let { obj: obj1, foo = 900 } = { obj: 100 };
// console.log(obj1, foo);
// let { cos, sin, random } = abc;
// console.log(cos, sin, random);

// 字符串的解构赋值;    
let [a, b, c] = 'hello';
// console.log(a, b, c);

let { length: l } = 'hi';
console.log(l);